﻿using DFGK_WMS.Model.DTO;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK_WMS.IRepository
{
    /// <summary>
    /// 出库表管理
    /// </summary>
    public interface ITShippingOrderDetailRepository : IBaseRepository<TShippingOrderDetail>
    {


        /// <summary>
        /// 添加出库管理 多个物料版本
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        bool AddTShippingOrderDetailPlus(TShippingOrderDetailPlusDTO model, out string msg);

        /// <summary>
        /// 添加出库管理 一个托盘上有多个物料版本
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        bool AddTShippingOrderDetailNew(TShippingOrderDetailPlusDTO model, out string msg);



        /// <summary>
        /// 显示出库单 多个物料版本
        /// </summary>
        /// <param name="status"></param>
        /// <param name="warehouseid"></param>
        /// <param name="name"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<GetChukuDanDTO> GetAllTShippingOrderDetailPlus(int? billType, int? houseid, string? name, int pageIndex, int pageSize, out int totalCount, int? statusNum);

        /// <summary>
        /// 显示出库单 多个物料版本             StatusNum   0未完成  4已完成  8已回传
        /// </summary>
        /// <param name="status"></param>
        /// <param name="warehouseid"></param>
        /// <param name="name"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        GetChukuDanDTOHn? GetOneTShippingOrderDetailPlus(out bool res);



        /// <summary>
        /// 修改单子为已回传
        /// </summary>
        /// <param name="orderSn">出库单号</param>
        /// <returns></returns>
        bool UpdOutShippingStatus(string orderSn, out string? errorMsg);
    }
}